TOP

SQL 连接

SQL JOIN

JOIN 表达式用于根据两个或多个表之间的相关列连接来自两个或多个表的行。


让我们看一下表“Orders”(“订单”)中的示例:

ProductIDOrderIDCustomerIDEmployeeIDOrderDateShipperID
1102489051996-07-043
2102498161996-07-051
3102503441996-07-082

然后查看表“Customers”(“客户”)中的示例:

CustomerIDCustomerNameContactNameAddressCityPostalCodeCountry
1Alfreds FutterkisteMaria AndersObere Str. 57Berlin12209Germany
2Ana Trujillo Emparedados y heladosAna TrujilloAvda. de la Constitución 2222México D.F.5021Mexico
3Antonio Moreno TaqueríaAntonio MorenoMataderos 2312México D.F.5023Mexico

请注意,表“Orders”中的列“CustomerID”引用表“Customers”中的“CustomerID”。 上面两个表之间的关系是“CustomerID”列。

然后我们可以创建以下 SQL 语句(包含 INNER JOIN)来选择两个表中具有匹配值的记录:

Run SQLSELECT Orders.OrderID, Customers.CustomerName, Orders.OrderDate
FROM Orders
INNER JOIN Customers ON Orders.CustomerID = Customers.CustomerID

这会产生这样的结果:

OrderIDCustomerNameOrderDate
10308Ana Trujillo Emparedados y helados1996-09-18
10365Antonio Moreno Taquería1996-11-27
10355Around the Horn1996-11-15
10383Around the Horn1996-12-16
10289B's Beverages1996-08-26

不同类型的 SQL JOIN

以下是 SQL 中 JOIN 的不同类型:

  • (INNER) JOIN:返回两个表中具有匹配值的记录
  • LEFT (OUTER) JOIN:返回左表中的所有记录以及右表中的对应记录
  • RIGHT (OUTER) JOIN:返回右表中的所有记录以及左表中的匹配记录
  • FULL (OUTER) JOIN:如果左表或右表中有匹配,则返回所有记录


  • SQL INNER JOIN  SQL LEFT JOIN  SQL RIGHT JOIN  SQL FULL OUTER JOIN